Intelligent network scanning system and method

ABSTRACT

A system, method and computer program product are provided for scanning data. Initially, data is received at a network element. Thereafter, a load on the network element is identified. The data is then conditionally scanned at the network element based on the load on the network element. Another system, method and computer program product are provided for scanning data. After the receipt of data at a network element, it is determined as to whether there is a request for the data. The data may then be conditionally scanned at the network element based on whether there is a request for the data. The data is subsequently transmitted in response to the request. Still another system, method and computer program product are provided for scanning data. Upon the receipt of data at a network element, an extent to which the data was previously scanned by another network element is determined. The data is then conditionally scanned at the network element based on the extent to which the data was previously scanned by another network element.

FIELD OF THE INVENTION

The present invention relates to scanning methods, and more particularlyto intelligent scanning methods.

BACKGROUND OF THE INVENTION

Network security management is becoming a more difficult problem asnetworks grow in size and become a more integral part of organizationaloperations. Attacks on networks are growing both due to the intellectualchallenge such attacks represent for hackers and due to the increasingpayoff for the serious attacker. Furthermore, the attacks are growingbeyond the current capability of security management tools to identifyand quickly respond to those attacks. As various attack methods aretried and ultimately repulsed, the attackers will attempt new approacheswith more subtle attack features. Thus, maintaining network security isan on-going, ever changing, and increasingly complex problem.

Computer network attacks can take many forms and any one attack mayinclude many security events of different types. Security events areanomalous network conditions each of which may cause an anti-securityeffect to a computer network. Security events include stealingconfidential or private information; producing network damage throughmechanisms such as viruses, worms, or Trojan horses; overwhelming thenetwork's capability in order to cause denial of service, and so forth.

Security systems often employ security risk-assessment tools, i.e.“scanners,” to simulate an attack against computer systems via a remoteconnection. Such scanners can probe for network weaknesses by simulatingcertain types of security events that make up an attack. Such tools canalso test user passwords for suitability and security. Moreover,scanners can search for known types of security events in the form ofmalicious programs such as viruses, worms, and Trojan horses. Further,scanners are used for content filtering to enforce an organization'soperational policies [i.e. detecting harassing or pornographic content,junk e-mails, misinformation (virus hoaxes), etc.].

In most security systems, data often gets scanned multiple times as itis transmitted through various network elements. For data entering fromexternal networks, there is usually some security scanning that firsttakes place at a network gateway. Then, the data is scanned again whenit is saved to a server after which it is scanned once again by an enduser workstation upon retrieval. This redundant scanning results inunnecessary, duplication of computing workload resources. Organizationsmust purchase equipment that can handle all such additional informationprocessing in the form of more memory and additional processingcapacity. There is thus a need for reducing the redundancy of scanningin security system scanning, and avoiding the need for additionalresources.

Security systems often use gateway scanning to analyze data entering anetwork from other uncontrolled networks to detect possible attacks. Ofcourse, this requires time and resources at the gateway. As such,gateway scanning often involves a balance between providing timelyaccess to the data stream by an end user, and providing a thorough scanof the incoming data. So long as there is not much data passing throughthe gateway, comprehensive scanning can be accomplished withoutinterrupting timely user access to the data. However, if the gateway isextremely busy checking for many different potential threats, the dataaccess may be unacceptably constricted. There is thus a need foroptimally balancing timely access to the data stream by an end user, andproviding a thorough scan of the incoming data in a gateway environment.

Current security systems employ an “all or nothing” approach toscanning. When triggered either by an access or scheduled request, aspecified scan must be executed completely (100%) irregardless ofcurrent computing resource availability. Some e-mail server scanningprograms feature “trusted scanning.”Once an item has been scanned by oneserver, it may be flagged so subsequent e-mail servers can avoidre-scanning the item. Unfortunately, such e-mail server scanningprograms require complete scans if one is required at all. There is thusa need for improving load balancing by exploiting partial scans asopposed to the complete scans of the prior art.

DISCLOSURE OF THE INVENTION

A system, method and computer program product are provided for scanningdata. Initially, data is received at a network element. Thereafter, aload on the network element is identified. The data is thenconditionally scanned at the network element based on the load on thenetwork element.

In one aspect of the present embodiment, the network element may includea gateway. Further, the load may include a backlog of data to be scannedat the network element.

In another aspect of the present embodiment, an amount of scanningcompleted at the network element may be a function of the load on thenetwork element. In particular, the data may be partially scanned at thenetwork element if the load on the network element is greater than apredetermined amount. If, however, the load on the network element isless than the predetermined amount, the data may be completely scannedat the network element.

As an option, a status of the scanning at the network element may bestored in memory. As such, an additional network element, i.e. a server,may conditionally scan the data based on the status.

Another system, method and computer program product are provided forscanning data. After the receipt of data at a network element, it isdetermined as to whether there is a request for the data. The data maythen be conditionally scanned at the network element based on whetherthere is a request for the data. The data is subsequently transmitted inresponse to the request.

In one aspect of the present embodiment, the network element may includea server. Further, the request for the data may be received from a userdevice.

In another aspect of the present embodiment, the data may be partiallyscanned at the network element if it is determined that there is arequest for the data. If it is determined that there is not a requestfor the data, the data may be completely scanned at the network element.

Still another system, method and computer program product are providedfor scanning data. Upon the receipt of data at a network element, anextent to which the data was previously scanned by another networkelement is determined. The data is then conditionally scanned at thenetwork element based on the extent to which the data was previouslyscanned by another network element.

In one aspect of the present embodiment, the network element may includea user device. Further, an amount of scanning completed at the networkelement may be a function of the extent to which the data was previouslyscanned by another network element. In particular, an amount of scanningcompleted at the network element may be sufficient to complete anentirety of the scanning.

Optionally, the extent to which the data was previously scanned byanother network element is identified in a log accessible by the networkelement.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a network architecture, in accordance with oneembodiment.

FIG. 2 shows a representative hardware environment that may beassociated with the data servers and user devices of FIG. 1, inaccordance with one embodiment.

FIG. 3 illustrates a method for scanning data, in accordance with oneembodiment.

FIG. 4 illustrates another method for scanning data, in accordance withone embodiment.

FIG. 5 illustrates yet another method for scanning data, in accordancewith one embodiment.

FIG. 6 illustrates an exemplary method combining the various principlesset forth hereinabove into a single system.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates a network architecture 100, in accordance with oneembodiment. As shown, a plurality of remote networks 102 are providedincluding a first remote network 104 and a second remote network 106.Also included is at least one gateway 107 coupled between the remotenetworks 102 and a plurality of proximate networks 108. Such proximatenetworks 108 include a first proximate network 110 and a secondproximate network 112. In the context of the present networkarchitecture 100, the networks 104, 106, 110 and 112 may each take anyform including, but not limited to a local area network (LAN), a widearea network (WAN) such as the Internet, etc.

In use, the gateway 107 serves as an entrance point from the remotenetworks 102 to the proximate networks 108. As such, the gateway 107 mayfunction as a router, which is capable of directing a given packet ofdata that arrives at the gateway 107, and a switch, which furnishes theactual path in and out of the gateway 107 for a given packet.

Further included is at least one data server 114 coupled to theproximate networks 108, and which are accessible from the remotenetworks 102 via the gateway 107. It should be noted that the dataservers 114 may include any type of computing device/groupware. Coupledto the data servers 114 is a plurality of user devices 116. Such userdevices 116 may include a desktop computer, lap-top computer, hand-heldcomputer, printer or any other type of logic. It should be noted thatthe user devices 116 may also be directly coupled to the networks, inone embodiment.

Further provided is a plurality of scanners coupled to the variousnetwork elements of the network architecture 100. In particular, agateway scanner 118 is coupled to each gateway 107, a data serverscanner 120 is coupled to each data server 114, and an user devicescanner 122 is coupled to each user device 116. It should be noted thatadditional scanners may be utilized with any type of network elementcoupled to the networks 104, 106, 110 and 112. In the context of thepresent description, a network element may refer to any component of anetwork. In use, each of the scanners is capable of executing a scanningprocedure. Details regarding such scanning procedure will be set forthhereinafter in greater detail.

FIG. 2 shows a representative hardware environment that may beassociated with the data servers 114 and user devices 116 of FIG. 1, inaccordance with one embodiment. Such figure illustrates a typicalhardware configuration of a workstation in accordance with a preferredembodiment having a central processing unit 210, such as amicroprocessor, and a number of other units interconnected via a systembus 212.

The workstation shown in FIG. 2 includes a Random Access Memory (RAM)214, Read Only Memory (ROM) 216, an I/O adapter 218 for connectingperipheral devices such as disk storage units 220 to the bus 212, a userinterface adapter 222 for connecting a keyboard 224, a mouse 226, aspeaker 228, a microphone 232, and/or other user interface devices suchas a touch screen and a digital camera (not shown) to the bus 212,communication adapter 234 for connecting the workstation to acommunication network 235 (e.g., a data processing network) and adisplay adapter 236 for connecting the bus 212 to a display device 238.

The workstation may have resident thereon an operating system such asthe MICROSOFT WINDOWS NT or WINDOWS/95 Operating System (OS), the IBMOS/2 operating system, the MAC OS, or UNIX operating system. It will beappreciated that a preferred embodiment may also be implemented onplatforms and operating systems other than those mentioned. A preferredembodiment may be written using JAVA, C, and/or C++ language, or otherprogramming languages, along with an object oriented programmingmethodology. Object oriented programming (OOP) has become increasinglyused to develop complex applications.

FIG. 3 illustrates a method 300 for scanning data, in accordance withone embodiment. Optionally, the method 300 may be executed by thegateway scanner 118 coupled to the gateway 107 of FIG. 1. It should benoted, however, that the method 300 may be executed by any of thescanners 118, 120 and/or 122 of FIG. 1, or by a scanner associated withany desired network element.

Initially, in operation 302, data is received at the network element.Thereafter, a load on the network element is identified. Note operation303. As an option, the load may include a backlog of data to be scannedat the network element. Such backlog may be identified by determining anamount, i.e. MB, of data to be scanned. As an option, the amount mayrefer to a data flow rate. In the alternative, the load may be caused bygeneral network traffic, resource shortages, bandwidth restrictions,etc.

Thereafter, in decision 304, it is determined whether the load meetspredetermined criteria. In one embodiment, it may be determined whetherthe load is greater than a predetermined amount. Such predeterminedamount may be selected to ensure optimal operation of the networkelement.

If the load is less than the predetermined amount, the data may becompletely scanned in its entirety at the network element. See operation306. On the other hand, the data may only be partially scanned, or notscanned at all, at the network element if the load is greater than thepredetermined amount. Note operation 308. As an option, an amount ofscanning completed at the network element may be a function of the loadon the network element.

Of course, the data may be conditionally scanned at the network elementbased on the load on the network element in any desired manner. Itshould be noted that the partial and complete scans may each include anytype of scan and differ in any desired manner as long as the partialscan takes less time to execute with respect to the complete scan.

For example, scans often take the form of multiple scanning modules eachadapted to detect different types of vulnerabilities, banned content,viruses, etc. A partial scan may simply be a subset of the fullcollection of such scanning modules. Moreover, the selection of thesubset may be specifically tailored to the particular network element,environment, etc. and the specific vulnerabilities thereof. In thecontext of the present description, a partial scan may also refer to acomplete scan of only a portion of the data queued to be scanned.

As an option, a status of the scanning at the network element may bestored in memory. As such, an additional network element, i.e. a server,may conditionally scan the data based on the status in a manner thatwill be set forth in greater detail during reference to FIG. 6. Itshould be noted that such memory may take the form of a database,centralized reference information repository, an indexed flat file, aholographic storage system, or any memory capable of storinginformation.

FIG. 4 illustrates another method 400 for scanning data. In oneembodiment, the method 400 may be executed by the data server scanner120 coupled to each data server 114 of FIG. 1. It should be noted,however, that the method 400 may be executed by any of the scanners 118,120 and/or 122 of FIG. 1, or by a scanner associated with any desirednetwork element.

Initially, data is received at a network element in operation 402. Afterthe receipt of data at the network element, it is determined as towhether there is a request for the data from another network element inoperation 404. As an option, the request for the data may be receivedfrom one of the user devices 116.

The data may then be conditionally scanned at the network element basedon whether there is a request for the data from another network element.In particular, if it is determined in decision 405 that a request hasbeen made for the data, the data may only be partially scanned at thenetwork element. See operation 410. As an option, an amount of scanningcompleted at the network element may be a function of a load on thenetwork element. Once partially scanned, the data may be transmitted tothe requesting network element in operation 412.

If, on the other hand, it is determined in decision 405 that no requestis currently pending for the data, a complete scan may be executed inoperation 406. Once the complete scan is executed, the present method400 may poll until a request is received in decision 408. Once therequest received, the data may be transmitted to the requesting networkelement in operation 412.

It should be noted that the partial and complete scans may each includeany type of scan and differ in any desired manner as long as the partialscan takes less time to execute with respect to the complete scan.

Optionally, a status of the scanning at the network element may bestored in memory. As such, an additional network element, i.e. an userdevice, may conditionally scan the data based on the status in a mannerthat will be set forth in greater detail during reference to FIG. 6.

FIG. 5 illustrates yet another method 500 for scanning data, inaccordance with one embodiment. As an option, the method 500 may beexecuted by the user device scanners 122 coupled to the user devices 116of FIG. 1. It should be noted, however, that the method 500 may beexecuted by any of the scanners 118, 120 and/or 122 of FIG. 1, or by ascanner associated with any desired network element.

Upon the receipt of data at a network element in operation 502, anextent to which the data was previously scanned by another networkelement is determined. See operation 504.

The data is then conditionally scanned at the network element based onthe extent to which the data was previously scanned by another networkelement, as indicated in operation 506. In particular, an amount ofscanning completed at the network element may be a function of theextent to which the data was previously scanned by another networkelement.

For example, an amount of scanning completed at the network element maybe sufficient to complete an entirety of the scanning. As mentionedearlier, scans often take the form of multiple scanning modules eachadapted to detect different types of vulnerabilities, viruses, etc. Thecurrent scan of operation 506 may thus include any remaining subset ofthe full collection of such scanning modules.

Optionally, the extent to which the data was previously scanned byanother network element is identified in a memory log accessible by thenetwork element. Further, a status of the scanning at the presentnetwork element after operation 506 may be stored in such log. As such,still yet another additional network element may conditionally scan thedata based on the status in a manner that will be set forth in greaterdetail during reference to FIG. 6.

FIG. 6 illustrates an exemplary method 600 combining the variousprinciples set forth hereinabove into a single system. Initially, inoperation 602, data is received from one of the remote networks 102 atthe gateway 107 coupled between the remote network 102 and at least oneof the data servers 114. It is initially determined in decision 604whether a backlog of data to be scanned in the gateway scanner 118exists.

If the backlog is greater than a predetermined amount, a partial scan isperformed utilizing the gateway scanner 118 at the gateway 107. Seeoperation 606. If, on the other hand, the backlog is less than thepredetermined amount, an entirety of the data is scanned utilizing thegateway scanner 118 at the gateway 107. Note operation 608.

A first status as to the scanning performed utilizing the gatewayscanner 118 is stored in a database 612 coupled to the gateway scanner118. Note operation 610. Such database 612 may be coupled to the gatewayscanner 118 via one of the networks 102 and 108, reside at the gateway107, or in any desired location. More information regarding such processmay be found by reference to FIG. 3.

Next, the data is passed from the gateway scanner 118 to the data server114 coupled thereto. At the data server scanner 120 of the data server114, the first status stored in operation 610 is read from the database612 utilizing the data server scanner 120 at the data server 114. Noteoperation 614.

It is then determined in decision 616 whether there is a request for thedata from at least one user device 116 coupled to the data server 114.If it is determined that there is a request for the data from the userdevice 116, a partial scan is executed. Note operation 618. It should benoted that the scanning may be ceased before a complete scan can beexecuted if the request is received during the scan. If, however, it isdetermined that there is not a request for the data from the user device116, a complete scan is executed. See operation 620.

A second status of the scanning performed utilizing the data serverscanner 120 is then stored in the database 612 which is coupled thereto.Note operation 622. It should be noted that the second status may besimply an update to the first status, a stand-alone status record, orany desired information for tracking the current status of the scanning.In use, the data is transmitted to the user device 116 in response tothe request. More information regarding such process may be found byreference to FIG. 4.

At the user device 116, the second status is read from the database 612utilizing the user device scanner 122 at the user device 116. Seeoperation 624. As such, it may be determined whether the scanning of thedata is complete based on the first status and the second status. If itis determined that the scanning of the data is complete in decision 626,the data is simply used at the user device 116. See operation 627. If itis determined that the scanning of the data is not complete in decision626, the scanning of the data is completed utilizing the user devicescanner 122 at the user device 116. Note operation 628.

Finally, in operation 630, a third status is stored in the database 612for indicating that the scanning is complete. As such, other networkelements may selectively scan the data based on the status. Moreinformation regarding such process may be found by reference to FIG. 5.

It should be noted that processes similar to those set forth hereinabovemay be used with outgoing data. For example, the user device scanners122 of the user devices 116 may utilize the functionality of FIGS. 3 and4 in response to load conditions and requests made by other networkelements, respectively. Moreover, the gateway scanner 118 of the gateway107 may employ the techniques of FIG. 5 prior to transmitting data tothe remote networks 102. Of course, any of the network elements mayemploy any of the desired functionality set forth hereinabove.

The various techniques disclosed herein thus provide the ability tointelligently vary the amount of scanning based upon available computingresources and content bandwidth requirements, to identify data that hasbeen partially checked and identify the data integrity status with otherapplications through the use of the database, and to defer lowerpriority scanning tasks to another time, and or delegate scanning tasksto other available networked scanning computers if adequatelyprioritized analysis resources are not available.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Thus, the breadth and scope of a preferred embodiment shouldnot be limited by any of the above-described exemplary embodiments, butshould be defined only in accordance with the following claims and theirequivalents.

1. A scanning method, comprising: a) receiving data at a networkelement; b) identifying a load on the network element; and c)conditionally scanning the data at the network element based on the loadon the network element; wherein an amount of scanning completed at thenetwork element is a function of the load on the network element;wherein the data is partially scanned at the network element if the loadon the network element is greater than a predetermined amount.
 2. Themethod as recited in claim 1, wherein the network element includes agateway.
 3. The method as recited in claim 1, wherein the load includesa backlog of data to be scanned at the network element.
 4. The method asrecited in claim 1, wherein the data is completely scanned at thenetwork element if the load on the network element is less than thepredetermined amount.
 5. The method as recited in claim 1, and furthercomprising storing a status of the scanning at the network element. 6.The method as recited in claim 5, wherein an additional network elementconditionally scans the data based on the status.
 7. The method asrecited in claim 6, wherein the additional network element includes aserver.
 8. A computer program product embodied on a computer readablemedium for scanning, comprising: a) computer code for receiving data ata network element; b) computer code for identifying a current load onthe network element; and c) computer code for conditionally scanning thedata at the network element based on the load on the network element;wherein an amount of scanning completed at the network element is afunction of the load on the network element; wherein the data ispartially scanned at the network element if the load on the networkelement is greater than a predetermined amount.
 9. A scanning system,comprising: a) means for receiving data at a network element; b) meansfor identifying a current load on the network element; and c) means forconditionally scanning the data at the network element based on the loadon the network element; wherein an amount of scanning completed at thenetwork element is a function of the load on the network element;wherein the data is partially scanned at the network element if the loadon the network element is greater than a predetermined amount.
 10. Ascanning method, comprising: a) receiving data at a network element; b)determining whether there is a request for the data and identifying aload on the network element; c) conditionally scanning the data at thenetwork element based on whether there is a request for the data and theload on the network element; and d) transmitting the data in response tothe request; wherein an amount of scanning completed at the networkelement is a function of whether there is a request for the data and theload on the network element; wherein the data is partially scanned atthe network element if the load on the network element is greater than apredetermined amount.
 11. The method as recited in claim 10, wherein thenetwork element includes a server.
 12. The method as recited in claim10, wherein the request for the data is received from a user device. 13.The method as recited in claim 10, wherein the data is partially scannedat the network element if it is determined that there is a request forthe data.
 14. The method as recited in claim 13, wherein the data iscompletely scanned at the network element if it is determined that thereis not a request for the data.
 15. The method as recited in claim 10,and further comprising storing a status of the scanning at the networkelement.
 16. The method as recited in claim 15, wherein an additionalnetwork element conditionally scans the data based on the status.
 17. Acomputer program product embodied on a computer readable medium forscanning, comprising: a) computer code for receiving data at a networkelement; b) computer code for determining whether there is a request forthe data; c) computer code for conditionally scanning the data at thenetwork element based on whether there is a request for the data and aload on the network element; and d) computer code for transmitting thedata in response to the request; wherein an amount of scanning completedat the network element is a function of whether there is a request forthe data and the load on the network element; wherein the data ispartially scanned at the network element if the load on the networkelement is greater than a predetermined amount.
 18. A scanning system,comprising: a) means for receiving data at a network element; b) meansfor determining whether there is a request for the data; c) means forconditionally scanning the data at the network element based on whetherthere is a request for the data and a load on the network element; andd) means for transmitting the data in response to the request; whereinan amount of scanning completed at the network element is a function ofwhether there is a request for the data and the load on the networkelement; wherein the data is partially scanned at the network element ifthe load on the network element is greater than a predetermined amount.19. A scanning method, comprising: a) receiving data at a networkelement; b) determining an extent to which the data was previouslyscanned by another network element and identifying a load on the networkelement; c) conditionally scanning the data at the network element basedon the extent to which the data was previously scanned by anothernetwork element and the load on the network element; wherein an amountof scanning completed at the network element is a function of the extentto which the data was previously scanned by another network element andthe load on the network element; wherein the data is partially scannedat the network element if the load on the network element is greaterthan a predetermined amount.
 20. The method as recited in claim 19,wherein the network element includes a user device.
 21. The method asrecited in claim 19, wherein an amount of scanning completed at thenetwork element is a function of the extent to which the data waspreviously scanned by another network element.
 22. The method as recitedin claim 21, wherein an amount of scanning completed at the networkelement is sufficient to complete an entirety of the scanning.
 23. Themethod as recited in claim 21, wherein the extent to which the data waspreviously scanned by another network element is identified in a logaccessible by the network element.
 24. The method as recited in claim19, and further comprising storing a status of the scanning at thenetwork element.
 25. The method as recited in claim 24, wherein anadditional network element conditionally scans the data based on thestatus.
 26. A computer program product embodied on a computer readablemedium for scanning, comprising: a) computer code for receiving data ata network element; b) computer code for determining an extent to whichthe data was previously scanned by another network element; c) computercode for conditionally scanning the data at the network element based onthe extent to which the data was previously scanned by another networkelement and a load on the network element; wherein an amount of scanningcompleted at the network element is a function of the extent to whichthe data was previously scanned by another network element and the loadon the network element; wherein the data is partially scanned at thenetwork element if the load on the network element is greater than apredetermined amount.
 27. A scanning system, comprising: a) means forreceiving data at a network element; b) means for determining an extentto which the data was previously scanned by another network element; c)means for conditionally scanning the data at the network element basedon the extent to which the data was previously scanned by anothernetwork element and a load on the network element; wherein an amount ofscanning completed at the network element is a function of the extent towhich the data was previously scanned by another network element and theload on the network element; wherein the data is partially scanned atthe network element if the load on the network element is greater than apredetermined amount.
 28. A method for efficient scanning, comprising:a) receiving data from a network at a gateway coupled between a networkand at least one data server; b) identifying a backlog of data to bescanned in the gateway; c) if the backlog is greater than apredetermined amount, performing a partial scan utilizing a gatewayscanner at the gateway; d) if the backlog is less than the predeterminedamount, performing a complete scan utilizing the gateway scanner at thegateway; e) storing a first status of the scanning performed utilizingthe gateway scanner in a database coupled to the gateway scanner; f)passing the data from the gateway scanner to the data server coupledthereto; g) reading the first status from the database utilizing a dataserver scanner at the data server; h) determining whether there is arequest for the data from at least one user device coupled to the dataserver; i) if it is determined that there is a request for the data fromthe user device, performing a partial scan on the data; j) storing asecond status of the scanning performed utilizing the data serverscanner in the database which is coupled thereto; k) transmitting thedata to the user device; l) reading the second status from the databaseutilizing a user device scanner at the user device; m) determiningwhether the scanning of the data is complete based on the first statusand the second status; and n) if it is determined that the scanning ofthe data is not complete, completing the scanning of the data utilizingthe user device scanner at the user device.
 29. The method as recited inclaim 28, and farther comprising storing a third status of the scanningperformed utilizing the user device scanner in the database which iscoupled thereto.